home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 February
/
EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso
/
earcd
/
midi
/
gfft.lha
/
gfft-2.03
/
source
/
gfft-2.03-source.lha
/
okfft.c
< prev
next >
Wrap
C/C++ Source or Header
|
1996-01-02
|
2KB
|
69 lines
/***************************************************************************
* Copyright (C) 1994 Charles P. Peterson *
* 4007 Enchanted Sun, San Antonio, Texas 78244-1254 *
* Email: Charles_P_Peterson@fcircus.sat.tx.us *
* *
* This is free software with NO WARRANTY. *
* See gfft.c, or run program itself, for details. *
* Support is available for a fee. *
***************************************************************************
*
* Program: gfft--General FFT analysis
* File: ok.c
* Purpose: OK! Do an ordinary fft analysis
* Author: Charles Peterson (CPP)
* History: 1-September-1993 CPP; Created.
* Comment:
*/
#include "gfft.h"
#include "settings.h"
ULONG ok_fft (BOOLEAN do_it_for_real)
{
unsigned long data_count;
unsigned long data_number;
unsigned long next_power;
float *indata;
data_count = ok_read (NULL, 0L);
next_power = get_pos_power_2 (data_count);
if (data_count != next_power)
{
if (Pad)
{
data_number = next_power;
}
else
{
data_number = next_power / 2;
error_message (IGNORING_TAILEND);
}
}
else
{
data_number = data_count;
}
if (!do_it_for_real) return data_number;
indata = gmalloc (data_number * sizeof(float), NOTHING_SPECIAL);
data_count = ok_read (indata, data_number);
if (data_count != data_number)
{
unsigned long i;
error_message (PADDING_TAILEND);
for (i = data_count; i < data_number; i++)
{
indata[i] = 0.0;
}
}
ok_rfft (indata, data_number);
ok_writec (indata, data_number);
gfree (indata);
return data_number;
}